package com.zhenti.z1;
// 来自微软
// 比如，str = "ayxbx"
// 有以下4种切法 : a | yxbx、ay | xbx、ayx | bx、ayxb | x
// 其中第1、3、4种切法符合：x和y的个数，至少在左右两块中的一块里有相同的数量
// 所以返回3
// 给定一个字符串str，长度为N
// 你有N-1种划分方法，把str切成左右两半，返回有几种切法满足：
// x和y的个数，至少在左右两块中的一块里有相同的数量
public class P6_23_3 {
    public static void main(String[] args) {
        String s = "xxy";
        System.out.println(P6_23_3.youxiu(s));
    }

    public static int youxiu(String s){
        if (null == s || s.length() < 2)
            return 0;

        int xSum = 0;
        int ySum = 0;
        char[] chars = s.toCharArray();
        for (int i = 0; i < s.length(); i++) {
            if (chars[i] == 'x'){
                xSum++;
                break;
            }
            if (chars[i] == 'y'){
                ySum++;
                break;
            }
        }
        int xLeft = 0;
        int yLeft = 0;
        int ans = 0;
        for (int i = 0; i < s.length()-1; i++) {
            if (chars[i] == 'x'){
                xLeft++;
            }
            if (chars[i] == 'y'){
                yLeft++;
            }
            if (xLeft ==yLeft  || xSum-xLeft == ySum-yLeft){
                ans++;
            }

        }


        return ans;
    }
}
